1. Technical Field
The present invention is generally directed to an improved data processing system. More specifically, the present invention is directed to a system and method for extending the cross-memory descriptor so that it may be used to describe memory from another partition in a logically partitioned computing environment.
2. Description of Related Art
The Advanced Interactive Executive (AIX) operating system supports logical partitioning (LPAR) in International Business Machine (IBM) Corporation's pSeries machines. LPARs allow the running of multiple system images on a single processor complex. Each such image has a full complement of CPUs (dedicated or shared), central storage, expanded storage and channels. With LPAR, there is a clear isolation of resources between partitions such that one partition may not make the system environment of any other partition unstable. In IBM Corporation's machines, the facility that enables this clear separation of resources for partitions is the hypervisor.
Since each partition has its own isolated set of resources, each partition has its own “local” memory that is hidden from surrounding partitions. Until the creation of virtual input/output (VIO) there was no legitimate reason for one partition to access another partition's memory directly.
With VIO a concept of point-to-point Direct Memory Access (DMA) operations and memory copy operations between partitions was introduced. DMA operations permit transfers of data from one memory to another memory directly without using the central processing unit (CPU) to perform the data transfers. DMA operations permit faster data transfers than if the CPU had to be used to transfer the data. Memory copy operations permit portions of memory to be directly copied from one memory to another.
Thus, VIO allows sharing of physical resources, e.g., an I/O adapter, etc., between partitions. Since a resource can belong to only one partition (called a “server” partition), the other partitions have to go through the server partition in order to use the resource (the other partitions are referred to as “client” partitions).
In the case of the shared resource being an I/O adapter, in order to use a server partition's I/O adapter, the server partition needs to setup a DMA operation from the I/O adapter to the client's memory. However, in order to setup the DMA operation, the server partition needs to know information about the structure of the client partition's memory. Moreover, the server partition needs to be able to pass the information about the client partition's memory structure down its own I/O stack, i.e. the prescribed hierarchy of software layers through which a data must be processed in order to perform an I/O operation (e.g., Logical Volume Manager (LVM), head driver, adapter drivers, bus drivers, kernel, and so on), in a useable format. Thus, it would be beneficial to have a system and method for describing a client partition's memory in a server partition's environment in such a manner that the description may be easily passed down the server partition's I/O stack.